Skip to content

Implement Gloas withdrawals and refactor#8692

Merged
mergify[bot] merged 9 commits into
unstablefrom
gloas-withdrawals
Feb 3, 2026
Merged

Implement Gloas withdrawals and refactor#8692
mergify[bot] merged 9 commits into
unstablefrom
gloas-withdrawals

Conversation

@michaelsproul

Copy link
Copy Markdown
Member

This PR implements the Gloas logic for withdrawals and refactors the Capella/Electra logic to match the refactored spec. There should be no consensus changes for the versions prior to Gloas (just refactoring).

@michaelsproul michaelsproul added work-in-progress PR is a work-in-progress consensus An issue/PR that touches consensus code, such as state_processing or block verification. gloas labels Jan 22, 2026
@michaelsproul

Copy link
Copy Markdown
Member Author

This is passing the Gloas spec tests, but there's still some more polish I'd like to apply before merging.

payload: Payload::Ref<'_>,
spec: &ChainSpec,
) -> Result<(), BlockProcessingError> {
if state.fork_name_unchecked().capella_enabled() {

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've moved this check up to process_block/per_block_processing so that this function doesn't just no-op in case Capella is disabled. We should not be calling process_withdrawals prior to Capella, that is a serious error.

@michaelsproul michaelsproul added ready-for-review The code is ready for review and removed work-in-progress PR is a work-in-progress labels Jan 28, 2026
@michaelsproul

Copy link
Copy Markdown
Member Author

Ready for review!

Comment thread consensus/state_processing/src/per_block_processing/withdrawals.rs Outdated
Comment thread consensus/state_processing/src/per_block_processing/withdrawals.rs
Comment thread consensus/state_processing/src/per_block_processing/withdrawals.rs
@mergify

mergify Bot commented Jan 28, 2026

Copy link
Copy Markdown

Some required checks have failed. Could you please take a look @michaelsproul? 🙏

@mergify mergify Bot added waiting-on-author The reviewer has suggested changes and awaits thier implementation. and removed ready-for-review The code is ready for review labels Jan 28, 2026
Comment thread consensus/state_processing/src/per_block_processing/withdrawals.rs
Comment thread consensus/state_processing/src/per_block_processing/withdrawals.rs
Comment thread consensus/state_processing/src/per_block_processing/withdrawals.rs Outdated
Comment thread consensus/state_processing/src/per_block_processing/withdrawals.rs
Comment thread consensus/state_processing/src/per_block_processing/withdrawals.rs
Comment thread consensus/state_processing/src/per_block_processing/withdrawals.rs

@eserilev eserilev left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Feel free to take it or leave it with the nits

Comment thread consensus/state_processing/src/per_block_processing/withdrawals.rs
Comment thread consensus/state_processing/src/per_block_processing/withdrawals.rs
Comment thread consensus/state_processing/src/per_block_processing/withdrawals.rs
Comment thread consensus/state_processing/src/per_block_processing/withdrawals.rs
Comment thread consensus/state_processing/src/per_block_processing/withdrawals.rs
Comment thread consensus/state_processing/src/per_block_processing/withdrawals.rs
Comment thread consensus/state_processing/src/per_block_processing/withdrawals.rs
Comment thread consensus/state_processing/src/per_block_processing/withdrawals.rs
@michaelsproul

Copy link
Copy Markdown
Member Author

Gonna avoid linking to the specs because I find these links always go stale and become useless. I think we could say "equivalent to X in the spec" on each function, but that should already kind of be implied.

@michaelsproul michaelsproul added ready-for-review The code is ready for review and removed waiting-on-author The reviewer has suggested changes and awaits thier implementation. labels Jan 29, 2026
@michaelsproul

Copy link
Copy Markdown
Member Author

Ready for re-review. There are quite a lot of TODOs, but these are mostly reminders for us to make changes at the next spec release.

@jimmygchen jimmygchen mentioned this pull request Jan 29, 2026
40 tasks

@eserilev eserilev left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nice, LGTM!

Do we wait until after the 8.1 release to merge this?

@eserilev

Copy link
Copy Markdown
Member

Sounds like alpha.2 is being released early next week. Might make sense to wait on that and make some of the TODO changes before merging

@michaelsproul

Copy link
Copy Markdown
Member Author

I wouldn't mind just merging this now seeing as it's ready, and then a small PR for alpha.2

@michaelsproul michaelsproul added ready-for-merge This PR is ready to merge. and removed ready-for-review The code is ready for review labels Feb 3, 2026
@mergify mergify Bot added the queued label Feb 3, 2026
@mergify

mergify Bot commented Feb 3, 2026

Copy link
Copy Markdown

Merge Queue Status

🚫 The pull request has left the queue (rule: default) at 1f4a43e

This pull request spent 1 hour 29 minutes 8 seconds in the queue, including 1 hour 27 minutes 8 seconds running CI.
The checks were run on draft #8732.

Required conditions to merge
  • check-success=local-testnet-success
  • check-success=test-suite-success

Reason

The merge conditions cannot be satisfied due to failing checks

Hint

You may have to fix your CI before adding the pull request to the queue again.
If you update this pull request, to fix the CI, it will automatically be requeued once the queue conditions match again.
If you think this was a flaky issue instead, you can requeue the pull request, without updating it, by posting a @mergifyio requeue comment.

mergify Bot added a commit that referenced this pull request Feb 3, 2026
mergify Bot added a commit that referenced this pull request Feb 3, 2026
mergify Bot added a commit that referenced this pull request Feb 3, 2026
@mergify mergify Bot added dequeued and removed queued labels Feb 3, 2026
@jimmygchen

Copy link
Copy Markdown
Member

@mergify requeue

@mergify

mergify Bot commented Feb 3, 2026

Copy link
Copy Markdown

requeue

✅ The queue state of this pull request has been cleaned. It can be re-embarked automatically

@mergify

mergify Bot commented Feb 3, 2026

Copy link
Copy Markdown

Merge Queue Status

✅ The pull request has been merged at 1f4a43e

This pull request spent 31 minutes 11 seconds in the queue, including 29 minutes 47 seconds running CI.
The checks were run on draft #8736.

Required conditions to merge
  • check-success=local-testnet-success
  • check-success=test-suite-success

@mergify mergify Bot added queued and removed dequeued labels Feb 3, 2026
mergify Bot added a commit that referenced this pull request Feb 3, 2026
@mergify mergify Bot merged commit d42327b into unstable Feb 3, 2026
36 checks passed
@mergify mergify Bot deleted the gloas-withdrawals branch February 3, 2026 07:36
@mergify mergify Bot removed the queued label Feb 3, 2026
hopinheimer pushed a commit to hopinheimer/lighthouse that referenced this pull request Feb 4, 2026
Co-Authored-By: Michael Sproul <michael@sigmaprime.io>

Co-Authored-By: Michael Sproul <michaelsproul@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

consensus An issue/PR that touches consensus code, such as state_processing or block verification. gloas ready-for-merge This PR is ready to merge.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants